Path tracing is a computer graphics method for rendering images of three dimensional scenes by integrating over the luminance of a single point on the surface of an object. Sampling the integral for a point may be done by ray tracing. Ray tracing is a technique for generating an image by tracing the path of light through pixels in an image and simulating intersections with virtual objects.
In order to ray trace a scene with path tracing, for example, a spatial acceleration data structure needs to be built. A spatial acceleration structure reduces the number of ray-object intersection tests. This structure speeds up the determination of what a ray intersects in a three-dimensional scene.
One of the most popular spatial acceleration data structures is the bounding volume hierarchy (BVH). A BVH is a tree-structure on a set of geometric objects wrapped in bounding volumes that form the leaf nodes of the tree. A bounding volume is a closed volume that completely contains a set of objects.
For animated scenes, the entire BVH, or parts of it, need(s) to be rebuilt every frame, and therefore, the BVH generation needs to be fast. However, it is also important that the generated trees are of high quality so the subsequent ray tracing process becomes as fast as possible.
On integrated graphics processing units (GPU), the available peak compute capabilities (in terms of Gflops) can be about twice that of the central processing unit (CPU) cores, which are all on the same die. Overhead is often incurred when several units need to collaborate on the same tasks, and therefore, one cannot expect to utilize the full compute capabilities from both CPU and GPU cores. Even though multi-core scaling may become power limited in the future, it is still very useful to know if an algorithm runs most efficiently on CPU cores or on the graphics processor cores, or if it is most efficient to split it up in some way.